Chart for WPF/Silverlight
コードでのマーカーの追加
グラフ機能 > マーカーとラベル > コードでのマーカーの追加

ここまでのトピックでは、XAML マークアップを使用してマーカーを追加する方法を説明してきました。プロジェクトによっては、コードでマーカーを追加する必要があります。

最初に、新しい ChartPanel を作成する必要があります。

C#
コードのコピー
var pnl = new ChartPanel();

新しい ChartPanel を追加したら、新しい ChartPanelObject を追加し、配置を設定します。

C#
コードのコピー
var obj = new ChartPanelObject()
 {
   HorizontalAlignment = HorizontalAlignment.Right,
   VerticalAlignment = VerticalAlignment.Bottom
 };

次に、Border 要素を追加します。

C#
コードのコピー
var bdr = new Border()
            {
               Background = new SolidColorBrush(Colors.Green) { Opacity = 0.4 },
                BorderBrush = new SolidColorBrush(Colors.Green),
               BorderThickness = new Thickness(1, 1, 3, 3),
               CornerRadius = new CornerRadius(6, 6, 0, 6),
                Padding = new Thickness(3)
            };

2つの TextBlock コントロールを含む StackPanel 要素を追加します。連結ソースは、追加した ChartPanelObject です。

C#
コードのコピー
var sp = new StackPanel();
            var tb1 = new TextBlock();
            var bind1 = new Binding();
            bind1.Source = obj;
            bind1.StringFormat = "x={0:#.##}";
            bind1.Path = new PropertyPath("DataPoint.X");
           tb1.SetBinding(TextBlock.TextProperty, bind1);
            var tb2 = new TextBlock();
            var bind2 = new Binding();
            bind2.Source = obj;
           bind2.StringFormat = "y={0:#.##}";
            bind2.Path = new PropertyPath("DataPoint.Y");
           tb2.SetBinding(TextBlock.TextProperty, bind2);
           sp.Children.Add(tb1);
           sp.Children.Add(tb2);
            bdr.Child = sp;

ChartPanelObjectContentDataPoint、および Action プロパティを設定し、ChartPanelObjectChartPanel に追加します。コードの最後の行は、レイヤのコレクションをチャートコントロールに追加しています。

C#
コードのコピー
obj.Content = bdr;
obj.DataPoint = new Point();
obj.Action = ChartPanelAction.MouseMove;
pnl.Children.Add(obj);
chart.View.Layers.Add(pnl);

コードの最後の行で、Attach プロパティを設定する必要があります。

C#
コードのコピー
obj.Attach = ChartPanelAttach.MouseMove;
            };
        }
    }

このトピックのコードでは、マウスポインタに追随するチャートマーカーを作成しました。

関連トピック